An end user viewing an error message finds it difficult to determine the problem indicated by the message or the action to take when encountering an exceptional situation while operating a computer system or application. To determine the action to take when an error occurs, the end user may utilize error codes, user manuals, a search of documentation or the Internet to determine the root cause of the error, troubleshooting suggestions, and “fix this problem” graphical user interface buttons. Known customization of error messages includes internationalization of the messages. Error messages are internationalized by generating a hashmap or database table that indexes the error message to be displayed with an error key. A different error message is provided for each language. Based on the user's language preference, the message in that language is displayed. These known error message customization techniques are limited to internationalization and therefore fail to account for other relevant differences in user attributes that affect how easily users can determine a cause of a problem or the action to take in response to an error message.